耐心排序(Patience Sorting):一种基于纸牌“接龙/排堆”规则的排序思想与算法框架。它通过把元素依次放入若干“牌堆”(每堆顶部保持尽可能小)来组织序列,常用于说明与求解最长递增子序列(LIS),并可进一步扩展为排序方法。该术语也指用这种“堆牌”过程得到的分堆结果与相关算法。
/ˈpeɪʃəns ˈsɔːrtɪŋ/
“Patience”原指一种纸牌游戏(英式英语里常用来指“接龙”类纸牌,如 solitaire)。Patience sorting 之所以得名,是因为它模仿把牌按规则分堆的过程:每来一张牌就放到“最合适”的牌堆上(通常是放到顶牌不小于它且顶牌最小的那一堆),从而形成若干递增/递减结构。后来计算机科学借用这一直观过程来讨论排序与 LIS 等问题。
She used patience sorting to find the length of the longest increasing subsequence.
她用耐心排序来求最长递增子序列的长度。
In algorithm analysis, patience sorting offers an intuitive “piles of cards” model that connects greedy placement with the structure of permutations.
在算法分析中,耐心排序提供了一种直观的“纸牌分堆”模型,把贪心式放置与排列的结构联系起来。